package com.sam.im.heiqun.uis.activities;

import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import com.sam.im.heiqun.R;
import com.yuyh.library.uis.activitys.BaseSwipeBackActivity;

import butterknife.BindView;

public class RechargeWebViewActivity extends BaseSwipeBackActivity {

    @BindView(R.id.recharge_web_view)
    WebView webview;
    String payUrl;

    private WebSettings webSettings;

    @Override
    public int getContentViewId() {
        return R.layout.activity_recharge_web_view;
    }

    @Override
    protected String getTitleText() {
        return getString(R.string.recharge);
    }

    @Override
    protected void initViews(Bundle savedInstanceState) {

        payUrl = getIntent().getStringExtra("payUrl");

        //设置webview 设置缩放等级,100代表不做任何缩放
        webview.setInitialScale(300);
        //设置webview可触摸放大缩小
        webview.getSettings().setSupportZoom(true);
        //设置显示缩放按钮
        webview.getSettings().setBuiltInZoomControls(true);
        //将图片调整到适合webview的大小
        webview.getSettings().setUseWideViewPort(true);


        //获取WebSettings对象
        webSettings = webview.getSettings();
        //设置webview支持运行普通的Javascript
        webSettings.setJavaScriptEnabled(true);
        //阻止网络图片加载
        webSettings.setBlockNetworkImage(false);

        /*webview有两个方法：setWebChromeClient和setWebClient
            setWebChromeClient主要处理解析，渲染网页等浏览器做的事情
            WebChromeClient是辅助WebView处理Javascript的对话框，网站图标，网站title，加载进度等

            简单的说，如果除了加载HTML的话，只需要用WebViewClient即可，
            但是在进行兼容互联网上附加javascript的页面的时候和调用javascript对话框的时候，
            或者功能较为复杂的内嵌操作的时候，建议使用WebChromeClient 。
            */

        //设置webchromeclient,以支持运行特殊的Javascript
        webview.setWebChromeClient(new WebChromeClient());

        //点击超链接后不弹出浏览器窗口，而在webview控件中加载URL
        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                //允许加载网络图片
                webview.getSettings().setBlockNetworkImage(true);
            }


            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                if( payUrl.startsWith("http:") || payUrl.startsWith("https:") ) {
                    return false;
                }

                // Otherwise allow the OS to handle things like tel, mailto, etc.
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(payUrl));
                startActivity( intent );
                return true;

            }
        });

        webview.loadUrl(payUrl);
    }
}
